//
//  QFTabBar.swift
//  sinaWeibo
//
//  Created by apple on 16/2/26.
//  Copyright © 2016年 Qifeng Yan. All rights reserved.
//

import UIKit

// 定义代理协议
@objc protocol QFTabBarDelegate: NSObjectProtocol {
    
    // 创建一个可选的代理方法
    optional
    func tabBarAddButtonDidClick()
}

class QFTabBar: UITabBar {
    
    // 设置一个代理属性
    weak var btnDelegate: QFTabBarDelegate?
    
    // MARK: - 设置加号按钮的frame
    override func layoutSubviews() {
        super.layoutSubviews()
        
        // 获取按钮的宽度 并设置frame 和中心点
        let width = frame.width / 5
        addBtn.frame = CGRect(x: 0, y: 0, width: width + 5, height: frame.height)
        addBtn.center = CGPoint(x: frame.width * 0.5, y: frame.height * 0.5)
    }
    
    // MARK: - 监听加号按钮的点击事件
    func addBtnDidClick() {
        // 3.调用代理
        // btnDelegate?: 表示btnDelegate属性有值才执行后面的代码
        // tabBarAddButtonDidClick?(): 表示代理实现这个方法就调用代理的这个方法,反之代理没有实现这个方法,就不调用
        self.btnDelegate?.tabBarAddButtonDidClick?()
        
    }

    // MARK: - 懒加载一个加号按钮
    lazy var addBtn: UIButton = {
       let button = UIButton(type: UIButtonType.Custom)
        
        // 设置属性
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Selected)
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted)
        
        // 给按钮添加一个点击事件
        button.addTarget(self, action: "addBtnDidClick", forControlEvents: UIControlEvents.TouchUpInside)
        
        // 添加到父控件
        self.addSubview(button)
        button.sizeToFit()
        
        return button
    }()

}
